Nested Attributes
Railsで、親モデルを介して関連する属性(モデル)を保存できるようにするやつ 具体的には、accepts_nested_attributes_forを使う
親モデルにこれを書くことで属性へのwriterが生える
あまり評判はよろしくなく、使わない方が良いという意見もよく見受けられるのだが、具体的な理由にまで言及していることは少ない
主にはコードが複雑になりがちなことや、fields_forのname属性が変わってわかりづらいことか
あと、DHHがそのうち消したいと思ってると言ったから、というのはよく取り沙汰されているが、2016年のことなので今でもこれを理由にするのは微妙感ある 僕がみた中ではこの投稿が具体的なのと納得感はあった あれはActiveRecordのAPIでPOROに使えないので、ARのカラム構造と現実が合わなくなった時や付随する処理でPOROが必要になった時に調整で苦労する可能性が高い
ReactやVueの様なJSON構造と表示のbindingと相性が悪い(名前付けのルールとかdestroyフラグとか)
この手の複数選択系のフォームはまともなUIで作るならJSでの項目の増減や個別の編集フォーム等はほぼ必須で、今時そういうUIをRailsのform helperをベースに作ることはほぼ無いので、記述削減のメリットが無い。
POROとの調整はわからないので置いておくとして、JSON構造とのbindingと相性が悪いということと、項目を増減させるためのフォームをJSで作るときにやりづらいという点に同意 僕が知らないだけでform helperを上手く使う方法はあるのかもしれない